<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>第十课：读取文件？（file） | HelloPython</title>
  <meta name="keywords" content="">
  <meta name="description" content="第十课：读取文件？（file） | HelloPython">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="Python：终于我要开始运行人脸识别程序了吗 我：是的 Python：我还只是个孩子啊qwq 接下来给大家讲解用python做人脸识别的方法 由于我之前做过关于opencv（另外一种人脸识别程序）的项目，发现这个人脸识别的准确率不高，【甚至它把我家的冰箱识别成我的脸】因此我这边选择百度智能云的方式进行人脸识别 首先我们需要一个百度账号，然后搜索百度智能云，用你的账号登陆之后，选择人脸识别，百度云">
<meta property="og:type" content="article">
<meta property="og:title" content="终极目标：Python人脸识别">
<meta property="og:url" content="http://example.com/2021/07/16/ULTIMATE-TARGET-Python%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB/index.html">
<meta property="og:site_name" content="HelloPython">
<meta property="og:description" content="Python：终于我要开始运行人脸识别程序了吗 我：是的 Python：我还只是个孩子啊qwq 接下来给大家讲解用python做人脸识别的方法 由于我之前做过关于opencv（另外一种人脸识别程序）的项目，发现这个人脸识别的准确率不高，【甚至它把我家的冰箱识别成我的脸】因此我这边选择百度智能云的方式进行人脸识别 首先我们需要一个百度账号，然后搜索百度智能云，用你的账号登陆之后，选择人脸识别，百度云">
<meta property="og:locale">
<meta property="article:published_time" content="2021-07-16T05:18:40.547Z">
<meta property="article:modified_time" content="2021-07-17T04:57:24.083Z">
<meta property="article:author" content="Unico喵叽">
<meta name="twitter:card" content="summary">


<link rel="icon" href="/img/avatar.jpg">

<link href="/css/style.css?v=1.1.0" rel="stylesheet">

<link href="/css/hl_theme/atom-light.css?v=1.1.0" rel="stylesheet">

<link href="//cdn.jsdelivr.net/npm/animate.css@4.1.0/animate.min.css" rel="stylesheet">

<script src="//cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="/js/titleTip.js?v=1.1.0" ></script>

<script src="//cdn.jsdelivr.net/npm/highlightjs@9.16.2/highlight.pack.min.js"></script>
<script>
    hljs.initHighlightingOnLoad();
</script>

<script src="//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js"></script>



<script src="//cdn.jsdelivr.net/npm/jquery.cookie@1.4.1/jquery.cookie.min.js" ></script>

<script src="/js/iconfont.js?v=1.1.0" ></script>

<meta name="generator" content="Hexo 5.1.1"></head>
<div style="display: none">
  <input class="theme_disqus_on" value="false">
  <input class="theme_preload_comment" value="">
  <input class="theme_blog_path" value="">
  <input id="theme_shortcut" value="true" />
  <input id="theme_highlight_on" value="true" />
  <input id="theme_code_copy" value="true" />
</div>


<!--自定义看板娘-->
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
<script src="/live2d-widget/autoload.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css"/>
<body>
<aside class="nav">
    <div class="nav-left">
        <a href="/" class="avatar_target">
    <img class="avatar" src="/img/avatar.jpg" />
</a>
<div class="author">
    <span>Unico喵叽</span>
</div>

<div class="icon">
    
        
    
        
        <a title="github" href="https://github.com/unicoursium" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-github"></use>
                </svg>
            
        </a>
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
        <a title="email" href="mailto:Unicoursium@outlook.com" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-email"></use>
                </svg>
            
        </a>
        
    
        
        <a title="qq" href="http://wpa.qq.com/msgrd?v=3&uin=3142626313&site=qq&menu=yes" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-qq"></use>
                </svg>
            
        </a>
        
    
        
    
        
        <a title="neteasemusic" href="https://music.163.com/#/user/home?id=573895841" target="_blank">
            
                <svg class="iconfont-svg" aria-hidden="true">
                    <use xlink:href="#icon-neteasemusic"></use>
                </svg>
            
        </a>
        
    
</div>




<ul>
    <li><div class="all active" data-rel="全部文章">全部文章<small>(14)</small></div></li>
    
</ul>
<div class="left-bottom">
    <div class="menus">
    
    
    
    
    </div>
    <div></div>
</div>
<input type="hidden" id="yelog_site_posts_number" value="14">

<div style="display: none">
    <span id="busuanzi_value_site_uv"></span>
    <span id="busuanzi_value_site_pv"></span>
</div>

    </div>
    <div class="nav-right">
        <div class="friends-area">
    <div class="friends-title">
        友情链接
        <i class="iconfont icon-left"></i>
    </div>
    <div class="friends-content">
        <ul>
            
            <li><a target="_blank" href="http://yelog.org/">叶落阁</a></li>
            
        </ul>
    </div>
</div>
        <div class="title-list">
    <div class="right-top">
        <div id="default-panel">
            <i class="iconfont icon-search" data-title="搜索 快捷键 i"></i>
            <div class="right-title">全部文章</div>
            <i class="iconfont icon-file-tree" data-title="切换到大纲视图 快捷键 w"></i>
        </div>
        <div id="search-panel">
            <i class="iconfont icon-left" data-title="返回"></i>
            <input id="local-search-input" />
            <label class="border-line" for="input"></label>
            <i class="iconfont icon-case-sensitive" data-title="大小写敏感"></i>
            <i class="iconfont icon-tag" data-title="标签"></i>
        </div>
        <div id="outline-panel" style="display: none">
            <div class="right-title">大纲</div>
            <i class="iconfont icon-list" data-title="切换到文章列表"></i>
        </div>
    </div>

    <div class="tags-list">
    <input id="tag-search" />
    <div class="tag-wrapper">
        
    </div>

</div>

    
    <div id="local-search-result">

    </div>
    
    <nav id="title-list-nav">
        
        <a  class="全部文章 "
           href="/2021/07/16/ULTIMATE-TARGET-Python%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="终极目标：Python人脸识别">终极目标：Python人脸识别</span>
            <span class="post-date" title="2021-07-16 13:18:40">2021/07/16</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/10/11/%E5%AE%9E%E6%88%98%EF%BC%9Apython%E5%88%9B%E4%BD%9C%E6%BC%82%E4%BA%AE%E7%9A%84%E8%AF%8D%E4%BA%91%E5%9B%BE/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="实战：python创作漂亮的词云图">实战：python创作漂亮的词云图</span>
            <span class="post-date" title="2020-10-11 15:53:25">2020/10/11</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/19/%E7%AC%AC%E5%8D%81%E8%AF%BE%EF%BC%9A%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%EF%BC%9F%EF%BC%88file%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第十课：读取文件？（file）">第十课：读取文件？（file）</span>
            <span class="post-date" title="2020-09-19 22:06:06">2020/09/19</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/19/%E7%AC%AC%E4%B9%9D%E8%AF%BE%EF%BC%9A%E5%B1%85%E7%84%B6%E6%83%B3%E7%BC%96%E4%B8%AA%E5%BA%93%EF%BC%9F%EF%BC%88%E5%BA%93%E7%9A%84%E7%BC%96%E5%86%99%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第九课：居然想编个库？（库的编写）">第九课：居然想编个库？（库的编写）</span>
            <span class="post-date" title="2020-09-19 21:47:13">2020/09/19</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/19/%E7%AC%AC%E5%85%AB%E8%AF%BE%EF%BC%9Aemmm%E2%80%A6%E2%80%A6%E5%87%BD%E6%95%B0%EF%BC%9F%EF%BC%88def%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第八课：emmm……函数？（def）">第八课：emmm……函数？（def）</span>
            <span class="post-date" title="2020-09-19 20:47:55">2020/09/19</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/18/%E7%AC%AC%E4%B8%83%E8%AF%BE%EF%BC%9Apython%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%EF%BC%88time%E4%BB%A5%E5%8F%8A%E5%B8%B8%E7%94%A8%E5%BA%93%E7%9A%84%E5%AE%89%E8%A3%85%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第七课：python的人脸识别（time以及常用库的安装）">第七课：python的人脸识别（time以及常用库的安装）</span>
            <span class="post-date" title="2020-09-18 22:22:34">2020/09/18</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/18/%E7%AC%AC%E5%85%AD%E8%AF%BE%EF%BC%9A%E4%B9%8B%E5%89%8D%E9%82%A3%E4%B8%AA%E8%AE%A1%E7%AE%97%E5%99%A8%E4%BC%9A%E4%B8%8D%E4%BC%9A%E8%BF%87%E4%BA%8E%E9%BA%BB%E7%83%A6%EF%BC%9F%EF%BC%88%E5%88%97%E8%A1%A8%EF%BC%8Csplit%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第六课：之前那个计算器会不会过于麻烦？（列表，split）">第六课：之前那个计算器会不会过于麻烦？（列表，split）</span>
            <span class="post-date" title="2020-09-18 21:32:44">2020/09/18</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/13/%E5%AE%9E%E6%88%98%EF%BC%81%E6%9D%A5%E7%82%B9%E4%B8%80%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%EF%BC%9F/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="实战！来点一元二次方程？">实战！来点一元二次方程？</span>
            <span class="post-date" title="2020-09-13 21:15:53">2020/09/13</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/13/%E7%AC%AC%E4%BA%94%E8%AF%BE%EF%BC%9A%E5%BE%AA%E7%8E%AF%EF%BC%81%EF%BC%88while%EF%BC%8Cfor%E8%AF%AD%E5%8F%A5%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第五课：循环！（while，for语句）">第五课：循环！（while，for语句）</span>
            <span class="post-date" title="2020-09-13 11:42:42">2020/09/13</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/12/%E7%AC%AC%E5%9B%9B%E8%AF%BE%EF%BC%9A%E5%81%9A%E4%B8%80%E4%B8%AA%E7%9C%9F%E6%AD%A3%E7%9A%84%E8%AE%A1%E7%AE%97%E5%99%A8%EF%BC%88%E8%AE%A1%E7%AE%97%E5%92%8Cif%EF%BC%8Cint%E8%AF%AD%E5%8F%A5%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第四课：做一个真正的计算器（计算和if，float语句）">第四课：做一个真正的计算器（计算和if，float语句）</span>
            <span class="post-date" title="2020-09-12 18:56:19">2020/09/12</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/12/%E7%AC%AC%E4%B8%89%E8%AF%BE%EF%BC%9A%E5%8A%A0%E6%B3%95%E5%99%A8%EF%BC%88input-int%EF%BC%89/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第三课：加法器（input int)">第三课：加法器（input int)</span>
            <span class="post-date" title="2020-09-12 16:11:58">2020/09/12</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/12/%E7%AC%AC%E4%BA%8C%E8%AF%BE%EF%BC%9A%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E5%92%8C%E5%8F%98%E9%87%8F/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第二课：数据格式和变量">第二课：数据格式和变量</span>
            <span class="post-date" title="2020-09-12 16:07:08">2020/09/12</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/12/%E7%AC%AC%E4%B8%80%E8%AF%BE%EF%BC%9A%E4%BB%8EHello-World%E5%BC%80%E5%A7%8B%E5%8F%AD/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="第一课：从Hello World开始叭">第一课：从Hello World开始叭</span>
            <span class="post-date" title="2020-09-12 15:45:41">2020/09/12</span>
        </a>
        
        <a  class="全部文章 "
           href="/2020/09/12/Easy-Python%E7%AE%80%E4%BB%8B/"
           data-tag=""
           data-author="" >
            <span class="post-title" title="Easy Python简介">Easy Python简介</span>
            <span class="post-date" title="2020-09-12 14:15:17">2020/09/12</span>
        </a>
        
        <div id="no-item-tips">

        </div>
    </nav>
    <div id="outline-list">
    </div>
</div>
    </div>
    <div class="hide-list">
        <div class="semicircle" data-title="切换全屏 快捷键 s">
            <div class="brackets first"><</div>
            <div class="brackets">&gt;</div>
        </div>
    </div>
</aside>
<div id="post">
    <div class="pjax">
        <article id="post-第十课：读取文件？（file）" class="article article-type-post" itemscope itemprop="blogPost">
    
        <h1 class="article-title">第十课：读取文件？（file）</h1>
    
    <div class="article-meta">
        
        
        
        
    </div>
    <div class="article-meta">
        
            发布时间 : <time class="date" title='最后更新: 2020-12-25 08:49:20'>2020-09-19 22:06</time>
        
    </div>
    <div class="article-meta">
        
        
        <span id="busuanzi_container_page_pv">
            阅读 :<span id="busuanzi_value_page_pv">
                <span class="count-comment">
                    <span class="spinner">
                      <div class="cube1"></div>
                      <div class="cube2"></div>
                    </span>
                </span>
            </span>
        </span>
        
        
    </div>
    
    <div class="toc-ref">
    
        <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#mode"><span class="toc-text">mode</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#r%E6%A8%A1%E5%BC%8F"><span class="toc-text">r模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#rb%E6%A8%A1%E5%BC%8F"><span class="toc-text">rb模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#r-%E6%A8%A1%E5%BC%8F"><span class="toc-text">r+模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#w%E6%A8%A1%E5%BC%8F"><span class="toc-text">w模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#w-%E6%A8%A1%E5%BC%8F"><span class="toc-text">w+模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#a%E6%A8%A1%E5%BC%8F"><span class="toc-text">a模式</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#a-%E6%A8%A1%E5%BC%8F"><span class="toc-text">a+模式</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E6%96%87%E4%BB%B6%E8%AF%AD%E5%8F%A5"><span class="toc-text">文件语句</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#read%E8%AF%AD%E5%8F%A5"><span class="toc-text">.read语句</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#readline%E8%AF%AD%E5%8F%A5"><span class="toc-text">.readline语句</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#readlines%E8%AF%AD%E5%8F%A5"><span class="toc-text">.readlines语句</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#write-%E8%AF%AD%E5%8F%A5"><span class="toc-text">.write()语句</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#writelines-%E8%AF%AD%E5%8F%A5"><span class="toc-text">.writelines()语句</span></a></li></ol></li></ol>
    
<style>
    .left-col .switch-btn,
    .left-col .switch-area {
        display: none;
    }
    .toc-level-3 i,
    .toc-level-3 ol {
        display: none !important;
    }
</style>
</div>
    
    <div class="article-entry" itemprop="articleBody">
      
        <p>那么如果你看到了这一章，说明你已经准备好开始高级操作了！</p>
<p>请下载本课资料<a target="_blank" rel="noopener" href="https://wws.lanzous.com/b01nn2j8h">class10</a></p>
<p>如果有一天，你的一个好朋友给你了一个文档</p>
<p>（文档在class10的abc.txt）</p>
<p>打开看一下下！</p>
<p>贼长对不对</p>
<p>看不懂对不对</p>
<p>一脸懵逼对不对</p>
<p>其实它是base64</p>
<p>一种文字/图片的加密方式</p>
<p>当然它绝对可以被解密，因为它是具有双向性的，不像md5这种加密了就很难解开的单向密码</p>
<p>那么我们如何读取这文件并且把它转化成图片呢</p>
<p>我们首先要学会用python读取文件和写入文件</p>
<p>这个读取和写入功能就需要open这个代码</p>
<p>那么我们先学会用代码读取和写入文件</p>
<pre><code class="python">open(&#39;filename&#39;,&#39;mode&#39;)
</code></pre>
<p>那么这个open里面的filename就是你要打开的文件名</p>
<p>mode是要打开的方式</p>
<p>下面是介绍mode的各个内容</p>
<h1 id="mode"><a href="#mode" class="headerlink" title="mode"></a>mode</h1><h2 id="r模式"><a href="#r模式" class="headerlink" title="r模式"></a>r模式</h2><p>在mode=’r’的时候是只读模式</p>
<p>你只能读取这里的内容，无法写入内容</p>
<p>此时这个open语句该这么写，假如我们用r模式打开abc.txt</p>
<pre><code class="python">open(&#39;abc.txt&#39;,&#39;r&#39;)
</code></pre>
<p>当然下面的mode都同理，把r改成rb，w，wb等模式即可</p>
<h2 id="rb模式"><a href="#rb模式" class="headerlink" title="rb模式"></a>rb模式</h2><p>rb模式下是用二进制模式打开文件</p>
<p>下面的wb wb+等同理</p>
<h2 id="r-模式"><a href="#r-模式" class="headerlink" title="r+模式"></a>r+模式</h2><p>r+模式下你可以打开一个文件，并且可以写入</p>
<p>而写入的地方是文件的开头</p>
<p>例如原来你的文本是这样的</p>
<pre><code class="text">world
</code></pre>
<p>那么你用r+模式写入了hello之后</p>
<p>就会是</p>
<pre><code class="python">helloworld
</code></pre>
<p>就是说你的指针会在文章的开头，你写入的东西会被放在开头。</p>
<p>rb+同理，只不过以二进制方式打开文件</p>
<h2 id="w模式"><a href="#w模式" class="headerlink" title="w模式"></a>w模式</h2><p>打开一个文件，只用于写入，不读取。如果原先有一个文件，就删除所有内容再写入</p>
<pre><code class="text">world
</code></pre>
<p>如果你用w模式写入了hello</p>
<pre><code class="text">hello
</code></pre>
<p>他就会删除原来的所有内容（就是world）然后写入hello</p>
<p>wb同理</p>
<h2 id="w-模式"><a href="#w-模式" class="headerlink" title="w+模式"></a>w+模式</h2><p>打开一个文件，可以写入，可以读取，写入参考上面的w模式</p>
<p>wb+同理</p>
<h2 id="a模式"><a href="#a模式" class="headerlink" title="a模式"></a>a模式</h2><p>打开一个文件并在文件末尾添加内容</p>
<pre><code>world
</code></pre>
<p>如果你用a模式写入了hello</p>
<p>就跟r+模式不同，</p>
<p>他不再是helloworld，而是</p>
<pre><code>worldhello
</code></pre>
<p>也就是它不会像r+模式把指针放在开头，而是放在末尾以供添加</p>
<p>ab模式同理</p>
<h2 id="a-模式"><a href="#a-模式" class="headerlink" title="a+模式"></a>a+模式</h2><p>打开文件用于读写，写入参考a模式</p>
<p> ab+模式同理</p>
<hr>
<p>那么我们知道了模式，接下来让我们学习文件语句的写法吧</p>
<h1 id="文件语句"><a href="#文件语句" class="headerlink" title="文件语句"></a>文件语句</h1><p>那么我们在用open语句打开一个文档之后我们需要把它装入一个python的变量里面</p>
<p>我们把它放在file变量里</p>
<p>例如我们要读取一个叫abc.txt的文件</p>
<p>那么我们就把它装入file变量</p>
<pre><code class="python">file = open(&#39;abc.txt&#39;,&#39;r&#39;)
</code></pre>
<p>那么我们就可以用file.xxx来控制这个文件了</p>
<p>当然file可以变成任何合法的你想要的名字</p>
<p>例如</p>
<pre><code class="python">helloworld = open(&#39;abc.txt&#39;,&#39;r+&#39;)
apple = open(&#39;banana.txt&#39;,&#39;wb+&#39;)
miao = open(&#39;wu.txt&#39;,&#39;a+&#39;)
#下面就可以用相应的操作语句来控制这个变量
a = helloworld.read()
b = apple.readline()
c = miao.write(&#39;喵呜&#39;)
</code></pre>
<p>那么下面介绍这个操作语句</p>
<h2 id="read语句"><a href="#read语句" class="headerlink" title=".read语句"></a>.read语句</h2><p>如果你要把一个文件里的内容放到一个变量a里面</p>
<p>就用a = file.read()</p>
<p>例如这里有个helloworld.txt</p>
<pre><code>helloworld
</code></pre>
<p>那么我们就用open语句打开它，并且用read语句读取它</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;r+&#39;)
a = helloworld.read()
</code></pre>
<h2 id="readline语句"><a href="#readline语句" class="headerlink" title=".readline语句"></a>.readline语句</h2><p>那么如果我们要读整行，就需要用到readline</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;r+&#39;)
a = helloworld.readline()
</code></pre>
<p>它会按次读行并且返回一个字符串放在a里面</p>
<p>但每次它只会读一行</p>
<p>那么如何让他按次读下来呢</p>
<p>其实很简单</p>
<p>只需要再复制粘贴下</p>
<p>下面是个例子</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;r+&#39;)
a = helloworld.readline()
print(a)
a = helloworld.readline()
print(a)
</code></pre>
<p>那么第一个print语句输出的就会是文件第一行</p>
<p>第二个输出文件第二行</p>
<p>因此readline是按次读行的</p>
<p>执行readline一次就读第一行</p>
<p>第二次就读第二行</p>
<p>那么有些人会问，那个括号里可以放东西吗</p>
<p>当然可以</p>
<p>每次readline的时候在括号里输入数字，就可以读取到这一行的这个数字的字符</p>
<p>额我也说不清楚</p>
<p>就先搞个例子</p>
<p>例如这个文件有一行叫做helloworld</p>
<p>那么执行readline(3)之后，a里面就会有hel这三个字</p>
<p>如果是readline(5)，a里面就会有hello这五个字符</p>
<h2 id="readlines语句"><a href="#readlines语句" class="headerlink" title=".readlines语句"></a>.readlines语句</h2><p>Readlines和readline很相近</p>
<p>但它们的读取方法不同</p>
<p>一个是按次读行，读取速度比较慢，而这个就方便多了</p>
<p>Readlines()语句是直接读取整个文件，并且把每一行的内容放在一个列表内</p>
<p>就像这样</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;r+&#39;)
a = helloworld.readlines()
print(a)
</code></pre>
<p>那么这个a在被输出的时候就会以一个列表的形式被输出</p>
<hr>
<p>我们的read的相关语句都学完了，那么接下来让我们看看write语句吧</p>
<h2 id="write-语句"><a href="#write-语句" class="headerlink" title=".write()语句"></a>.write()语句</h2><p>write语句其实很简单，只需要把你要写的字符串放入这个文件里就行了</p>
<p>例如你要把helloworld给放进helloworld.txt里面</p>
<p>只需要这么写</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;w&#39;)
helloworld.write(&#39;hellworld&#39;)
</code></pre>
<p>那么这个文件就会被写入helloworld。</p>
<p>那么read有readlines write也必定会有writelines</p>
<h2 id="writelines-语句"><a href="#writelines-语句" class="headerlink" title=".writelines()语句"></a>.writelines()语句</h2><p>writelines语句跟readlines一样，只要把一个列表放入括号内</p>
<p>就可以把列表内的内容按行写入文件里</p>
<p>举个例子</p>
<pre><code class="python">helloworld = open(&#39;helloworld.txt&#39;,&#39;w&#39;)
helloworld.writelines([1,2,3,4,5,6,7,8])
</code></pre>
<p>那么helloworld.txt里就会被写入</p>
<pre><code class="txt">1
2
3
4
5
6
7
8
</code></pre>
<p>就是这么简单</p>
<p>那么有些家伙就会问，字符串里能换行吗</p>
<p>当然能</p>
<p>但不是这样</p>
<pre><code class="python">helloworld.write(&#39;hello
                 world&#39;)
</code></pre>
<p>这样是不合法的！</p>
<p>python会一脸懵逼</p>
<p>此时我们就可以把这个换行操作转化成一个简单的“控制符”</p>
<p>在这里被称为转义字符</p>
<p>我们可以把一个转义字符想象成一个字符串里的“命令”</p>
<p>转义字符的开头永远是“\”</p>
<p>例如换行的这个转义字符是“\n”</p>
<p>那么字符串换行的功能就可以这么写</p>
<pre><code class="python">&#39;hello\nworld&#39;
</code></pre>
<p>当然中间是不带空格的，比较难阅读。</p>
<hr>
<p>那么学会了这些基础文件读写代码后，接下来就是实战咯</p>
<p>本课资料中有一个叫abc.txt的文件</p>
<p>如果你直接打开就会发现</p>
<p>什么鬼，一堆乱码！</p>

      
       <hr><span style="font-style: italic;color: gray;"> 转载请注明来源，欢迎对文章中的引用来源进行考证，欢迎指出任何有错误或不够清晰的表达,可以邮件至 Unicoursium@outlook.com </span>
    </div>
</article>


<p>
    <a  class="dashang" onclick="dashangToggle()">赏</a>
</p>






    




    </div>
    <div class="copyright">
        <p class="footer-entry">
    ©2021 Unicoursium
</p>
<p class="footer-entry">Built with <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/yelog/hexo-theme-3-hexo" target="_blank">3-hexo</a> theme</p>

    </div>
    <div class="full-toc">
        <button class="full" data-title="切换全屏 快捷键 s"><span class="min "></span></button>
<a class="" id="rocket" ></a>

    </div>
</div>

<div class="hide_box" onclick="dashangToggle()"></div>
<div class="shang_box">
    <a class="shang_close"  onclick="dashangToggle()">×</a>
    <div class="shang_tit">
        <p>喜欢就点赞,疼爱就打赏</p>
    </div>
    <div class="shang_payimg">
        <div class="pay_img">
            <img src="/img/alipay.jpg" class="alipay" title="扫码支持">
            <img src="/img/weixin.jpg" class="weixin" title="扫码支持">
        </div>
    </div>
    <div class="shang_payselect">
        <span><label><input type="radio" name="pay" checked value="alipay">支付宝</label></span><span><label><input type="radio" name="pay" value="weixin">微信</label></span>
    </div>
</div>


<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginModelPath":"assets/","model":{"jsonPath":"/live2dw/assets/tororo.model.json"},"display":{"position":"right","width":200,"height":400},"mobile":{"show":true},"rect":"opacity:0.7","log":false,"pluginJsPath":"lib/","pluginRootPath":"live2dw/","tagMode":false});</script></body>
<script src="/js/jquery.pjax.js?v=1.1.0" ></script>

<script src="/js/script.js?v=1.1.0" ></script>
<script>
    var img_resize = 'default';
    function initArticle() {
        /*渲染对应的表格样式*/
        
            $("#post .pjax table").addClass("green_title");
        

        /*渲染打赏样式*/
        
        $("input[name=pay]").on("click", function () {
            if($("input[name=pay]:checked").val()=="weixin"){
                $(".shang_box .shang_payimg .pay_img").addClass("weixin_img");
            } else {
                $(".shang_box .shang_payimg .pay_img").removeClass("weixin_img");
            }
        })
        

        /*高亮代码块行号*/
        

        /*访问数量*/
        
        $.getScript("//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js");
        

        /*代码高亮，行号对齐*/
        $('.pre-numbering').css('line-height',$('.has-numbering').css('line-height'));

        
        
    }

    /*打赏页面隐藏与展示*/
    
    function dashangToggle() {
        $(".shang_box").fadeToggle();
        $(".hide_box").fadeToggle();
    }
    

</script>

<!--加入行号的高亮代码块样式-->

<!--自定义样式设置-->
<style>
    
    
    .nav {
        width: 542px;
    }
    .nav.fullscreen {
        margin-left: -542px;
    }
    .nav-left {
        width: 120px;
    }
    
    
    @media screen and (max-width: 1468px) {
        .nav {
            width: 492px;
        }
        .nav.fullscreen {
            margin-left: -492px;
        }
        .nav-left {
            width: 100px;
        }
    }
    
    
    @media screen and (max-width: 1024px) {
        .nav {
            width: 492px;
            margin-left: -492px
        }
        .nav.fullscreen {
            margin-left: 0;
        }
    }
    
    @media screen and (max-width: 426px) {
        .nav {
            width: 100%;
        }
        .nav-left {
            width: 100%;
        }
    }
    
    
    .nav-right .title-list nav a .post-title, .nav-right .title-list #local-search-result a .post-title {
        color: #383636;
    }
    
    
    .nav-right .title-list nav a .post-date, .nav-right .title-list #local-search-result a .post-date {
        color: #5e5e5f;
    }
    
    
    .nav-right nav a.hover, #local-search-result a.hover{
        background-color: #c1bfc1;
    }
    
    

    /*列表样式*/
    

    /* 背景图样式 */
    
    
    #post .index {
        background: url(img/bga.jpg);
    }
    


    /*引用块样式*/
    

    /*文章列表背景图*/
    
    .nav-right:before {
        content: ' ';
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        opacity: 0.3;
        background: url("img/bg.jpg");
        background-repeat: no-repeat;
        background-position: 50% 0;
        -ms-background-size: cover;
        -o-background-size: cover;
        -moz-background-size: cover;
        -webkit-background-size: cover;
        background-size: cover;
    }
    

    
</style>







</html>
